laimas, все поначалу так кодили.
Да и не все так плохо.
_post.id неправильно обрабатывается. Если ожидается int, то можно сделать так:
if(!is_numeric($_POST['id']))
exit('Bad request');
$id=intval($_POST['id']);
Уведомление об ошибке sql-выполнения запроса увидит каждый.
Не проверяется есть ли вообще такой продукт в бд.
Ну и корзина в сессии хранится.